// src/utils/uploadHelper.js
// h5通过任何一个页面可以直接调用这个文件上传方法，比如父亲组件写一个按钮点击调用这个工具方法即可上传文件
// 仅仅通过文件选择器唤起然后选择文件，不支持拖拽上传
import http from '@/http/index.js'
import { api } from '@/api/index.js'
import { ElMessage } from 'element-plus'

export const uploadFileHelper = ({
    onlyGetInputFiles = false,
    uploadApi = api.uploadFile,
    inputAccept = '*/*',
    multiple = false,
    onGetInputFiles = (files) => { },
    onUploadResult = (res) => { },
}) => {
    const input = document.createElement('input');
    input.type = 'file';
    input.accept = inputAccept;
    input.multiple = multiple;

    input.onchange = (event) => {
        const files = event.target.files;
        if (onlyGetInputFiles) {
            onGetInputFiles(files);
            return;
        }

        if (files.length > 0) {
            const formData = new FormData();
            Array.from(files).forEach(file => {
                formData.append('file', file);
            });

            http.post(uploadApi, formData, {
                headers: {
                    'Content-Type': 'multipart/form-data',
                },
            }).then(res => {
                onUploadResult(res);
                if (res.code === 200) {
                    ElMessage.success(res.msg);
                } else if (res.code === 401) {
                    ElMessage.error(res.msg);
                } else {
                    ElMessage.error('后端服务出错');
                }
            }).catch(err => {
                console.error('上传失败', err);
                ElMessage.error('上传失败');
            });
        } else {
            ElMessage.error('未选择文件');
        }
    };

    input.click();
}


//使用实例
// import { uploadFileHelper } from '@/utils/uploadHelper.js'
{/* <div class="chooseFiles" @click="handleUploadClick" > 点击上传 </div> */}

//点击上传按钮事件
// const handleUploadClick = () => {
//   uploadFileHelper({
//     onlyGetInputFiles: true,//可选，默认false，如果为true则只获取选中文件列表
//     uploadApi: '/your/custom/api', // 可选，不传默认使用 api.uploadFile
//     inputAccept: '.xlsx,.xls', // 可选
//     multiple: true, // 可选
//     onGetInputFiles: (files) => {
//       console.log('选择的文件列表:', files);
//     },
//     onUploadResult: (res) => {
//       console.log('上传响应结果:', res);
//     }
//   })
// }